package com.base.api.service.selfOrder;

import com.base.api.dto.selfOrder.*;
import com.base.result.ResponseResult;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;

public interface SelfOrderApiService {

    ResponseResult partakerConfirmPayApp(HttpServletRequest request, final PartakerConfirmPayAppDTO partakerConfirmPayAppDTO) throws Exception;

    ResponseResult partakerConfirmPayWap(HttpServletRequest request, final PartakerConfirmPayWapDTO partakerConfirmPayWapDTO) throws Exception;

    ResponseResult partakerConfirmPayJsapi(HttpServletRequest request, final PartakerConfirmPayJsapiDTO partakerConfirmPayJsapiDTO) throws Exception;

    ResponseResult conversionConfirmPay(ConversionConfirmPayDTO conversionConfirmPayDTO) throws Exception;

    ResponseResult orderConfirmPayJsapi(HttpServletRequest request, OrderConfirmPayJsapiDTO orderConfirmPayJsapiDTO) throws Exception;

    ResponseResult orderConfirmPayApp(HttpServletRequest request, OrderConfirmPayAppDTO orderConfirmPayAppDTO) throws Exception;

    ResponseResult orderConfirmPayWap(HttpServletRequest request, OrderConfirmPayWapDTO orderConfirmPayWapDTO) throws Exception;

    ResponseResult selfOrderSearch(SelfOrderSearchDTO selfOrderSearchDTO);

    ResponseResult selfOrderDel(SelfOrderDelDTO selfOrderDelDTO);

    ResponseResult selfOrderDetails(SelfOrderDetailsDTO selfOrderDetailsDTO);

    ResponseResult selfOrderDeckList(SelfOrderDeckListDTO selfOrderDetailsDTO);

    ResponseResult selfOrderReplacement(SelfOrderReplacementDTO selfOrderReplacementDTO);

    void partakerAliNotify(HttpServletRequest request);

    void partakerWxNotify(HttpServletRequest request) throws Exception;

    ResponseResult manualWxNotify();

    ResponseResult partakerAliRefund(String orderNo, BigDecimal money);

    ResponseResult partakerWxRefund(String orderNo, BigDecimal money);

    ResponseResult manualPartakerNotify(String data);

    ResponseResult latestSpelling(LatestSpellingDTO latestSpellingDTO);

    ResponseResult aboutSpelling(AboutSpellingDTO aboutSpellingDTO);

    ResponseResult latestSpellingViewMore(LatestSpellingViewMoreDTO latestSpellingViewMoreDTO);

    ResponseResult partakerRecord(PartakerRecordDTO partakerRecordDTO);

    ResponseResult conversionRecord(ConversionRecordDTO conversionRecordDTO);

    ResponseResult commodityConversionRecord(CommodityConversionRecordDTO commodityConversionRecordDTO);

    ResponseResult confirmReceipt(ConfirmReceiptDTO confirmReceiptDTO);
}
